package com.huahua.api.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 文本差异类型枚举
 *
 * @author Huahua-Ai
 * @date 2025-07-12 09:45:00
 * @description 表示文本对比中的差异类型
 */
@Getter
@AllArgsConstructor
public enum DifferenceType {

    /**
     * 保持不变
     */
    KEEP("keep", "保持不变"),

    /**
     * 插入
     */
    INSERT("insert", "插入"),

    /**
     * 删除
     */
    DELETE("delete", "删除"),

    /**
     * 修改
     */
    MODIFY("modify", "修改");

    /**
     * 类型代码
     */
    private final String code;

    /**
     * 类型描述
     */
    private final String description;

    /**
     * 根据代码获取枚举
     *
     * @param code 类型代码
     * @return 对应的枚举值，如果不存在返回null
     */
    public static DifferenceType getByCode(String code) {
        if (code == null) {
            return null;
        }

        for (DifferenceType type : values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }
}
